/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package epibot.QualificaSites;

import java.io.File;
import java.util.ArrayList;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;

/**
 *
 * @author Rafael Tosta
 */
public class ImportCalibradores extends Thread {

    private JPanelQualificaSites jc;

    public ImportCalibradores(JPanelQualificaSites jc) {
        this.jc = jc;
    }

    @Override
    public void run() {

        JFileChooser e = new JFileChooser();
        e.setFileSelectionMode(JFileChooser.FILES_ONLY);
        File fileCalibradores = null;
        int returnVal = e.showOpenDialog(jc);
        if (returnVal == JFileChooser.APPROVE_OPTION) { //se escolhido o diretório...
            fileCalibradores = e.getSelectedFile();
            this.jc.getjTextCalibradores().setText(fileCalibradores.getAbsolutePath());
        }

        if (fileCalibradores != null) {

            ArrayList<String[]> l_calibradores = new ArrayList<String[]>();
            String ep = "";
            ProcessadorDeArquivo p = new ProcessadorDeArquivo();
            String t = p.lerArquivo(fileCalibradores);

            t = t.replace("\r\n", "#").replace("\n", "#").replace("\r", "#");
            String[] cal = t.split("#");

            int qtd_cal_incompletos = 0;
            for (int i = 0; i < cal.length; i++) {
                String[] c = cal[i].split(",");
                if (c.length == 2) {//apenas calibradores completos
                    String epitopo = c[0];
                    String proteina = c[1];

                    String calib[] = new String[3];
                    calib[0] = c[0];
                    calib[1] = c[1];
                    calib[2] = fileCalibradores.getName();
                    l_calibradores.add(calib);

                    ep = ep + epitopo + " - " + proteina + "\n";

                } else {
                    qtd_cal_incompletos++;
                }
            }

            if (l_calibradores.isEmpty()) {
                jc.setAvisoCalibration("");
                this.jc.getjTextCalibradores().setText("");
                JOptionPane.showMessageDialog(jc, "Import aborted, incompatible file!");
                l_calibradores = new ArrayList<String[]>();

            } else {
                jc.setAvisoCalibration(l_calibradores.size() + " calibrators imported");

            }

            jc.setCalibradores(l_calibradores);
            jc.setTamanhoAlelo();
        }
    }
}
